﻿# -*- coding: utf-8 -*-
import docx
import time

'''
#自定义的字符串替换列表
#形式为u'aaa' : u'bbb'
#每次新建一个关键字替换都必须按照上面的格式
#其中'aaa'为旧字符串,'bbb'为新字符串，u是格式转换符必须添加
#由于搜索方法并不智能，旧的关键字必须唯一 否则可能会替换掉文章中其他地方的字符
#例如 hello,python!,想把hello的o替换成Q ，最后输出可能是hellQ，pythQn
#所以如果想要只替换hello ，可以尝试 u'lo' : u'lQ' ,而不是u'o' : u'Q'
#最后请注意必须在末尾加上英文的逗号','
str_list1 = {u'安装完毕交付甲方':u'交货验收合格',
			u'视为验收不合格':u'你好吗',
			u'adb install':u'adb devices',
			u'并达到优良等级标准':u'并达到lv99标准',}

str_list2 = {u'付款':u' ee付款rr ',
			u'税':u' ee税rr ',
			u'逾期':u' ee逾期rr ',
			u'违约金':u' ee违约金rr ',
			u'赔偿金':u' ee赔偿金rr ',
			u'损失':u' ee损失rr ',
			u'赔偿':u' ee赔偿rr ',
			u'违约责任':u' ee违约责任rr ',
			u'所有权':u' ee所有权rr ',
			u'终止合同':u' ee终止合同rr ',
			u'解除合同':u' ee解除合同rr ',
			u'人民法院':u' ee人民法院rr ',}
'''


def run(paht,replace_list):
	#功能大致说明，遍历文档中所有段落
	#将每一个段落都与str_list匹配，如果该段落有关键字就将其替换

	str_list = replace_list
	#print str_list
	doc = docx.Document('%s'%(paht))
	#print len(doc.paragraphs)
	#遍历所有段落
	for k in xrange(len(doc.paragraphs)):
		a = doc.paragraphs[k].text
		#把段落转换成utf8
		b = a.encode('utf-8')
		for x in xrange(len(str_list)):
			#获取字典的键
			key = str_list[x].encode('utf-8')
			#print key
			#查找段落中有没有与键匹配的词语
			#有的话就替换
			if b.find(key) != -1 and b.find(' ee'+key) == -1:
				print '找到关键字：%s '%(key),#r'-修改为-> %s'%(str_list[key].encode('utf-8'))
				b = b.replace(key,' ee'+key+'rr ')
				print b
				#替换好语句重新放入段落中
				#type需改回Unicode格式
				doc.paragraphs[k].text = b.decode('utf-8')

	#这里修改保存路径和文件名
	doc.save(r'C:\2word.docx')
	print 'END'

if __name__ == '__main__':

	#可以自己在里面添加删除关键字
	#用*中文*的逗号隔开，或者修改split(',')中的分隔符
	#也就是每个词后面都要跟一个逗号
	
	# 删除：把不想要的关键字删掉就行，注意把逗号也要删掉
	
	# 换行：在最后一行的\后回车另起一行，复制这个： u''\
	#然后就可以在''内写入内容
	str1 = u'付款,税,逾期,违约金,赔偿金,损失,赔偿,违约责任,'\
			u'所有权,终止合同,解除合同,人民法院，'\
			u''\

	str_list4 = str1.split(',')
	print str_list4
	#这里修改原始文本的路径，str_list3是替换关键字列表
	#也可以新建str_list4、str_list5……
	#格式复制str_list3，然后修改里面的内容
	#把下面run里面的str_list3成新建名字的就可以了
	run(r'C:\1word.docx',str_list4)